singularities complex analysis